package cn.com.dcsgo.config;

import org.springframework.amqp.support.converter.Jackson2JsonMessageConverter;
import org.springframework.amqp.support.converter.MessageConverter;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * MQConfig
 *
 * @author Dcsgo
 * @since 2025/4/18 下午2:41
 */
@Configuration
public class MQConfig {

    /**
     * 配置消息转换器 实现将对象转换成 Json 字符串
     *
     * @return Jackson2JsonMessageConverter
     */
    @Bean
    public MessageConverter messageConverter() {
        Jackson2JsonMessageConverter converter = new Jackson2JsonMessageConverter();
        // 始终转换推断类型
        // 如果不开启的话对于List的转换可能或出错(例如List<Long> 可能被转换为List<Integer> 从而导致报错)
        // 参考文章: https://www.modb.pro/db/170305
        converter.setAlwaysConvertToInferredType(true);
        return converter;
    }

}
